package top.goldenyear.porpoise.framework.common.enums;

import top.goldenyear.porpoise.framework.common.model.IntArrayValuable;
import java.util.Arrays;
import lombok.AllArgsConstructor;
import lombok.Getter;
import cn.hutool.v7.core.array.ArrayUtil;

/**
 * 全局用户类型枚举
 *
 * @author airhead
 */
@AllArgsConstructor
@Getter
public enum UserType implements IntArrayValuable {

  /** 面向 c 端，普通用户 */
  MEMBER(1, "会员"),
  /** 面向 b 端，管理后台 */
  ADMIN(2, "管理员");

  public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(UserType::getValue).toArray();

  /** 类型 */
  private final Integer value;

  /** 类型名 */
  private final String label;

  /**
   * @param value
   * @return
   */
  public static UserType valueOf(Integer value) {
    return ArrayUtil.firstMatch(userType -> userType.getValue().equals(value), UserType.values());
  }

  /**
   * @return
   */
  @Override
  public int[] array() {
    return ARRAYS;
  }
}
